The present invention relates to stepper motors systems in general, and more specifically to an improved circuit for driving a stepper motor and a method of controlling the circuit and driver.
Stepper motor systems and drivers are known in the art. Conventional stepper motor systems include a stepper motor and a driver for the motor, the motor driver typically including an H-bridge circuit. FIG. 1 illustrates a conventional circuit 10 for driving a stepper motor.
An analog voltage signal is fed into a voltage-to-duty-cycle converter 12, which is clocked by an oscillator 14. An output of the converter 12 is then fed into a first input 18 of a first AND gate 20, and into a first input 22 of a second AND gate 24. A phase signal is fed into second respective inputs 26, 28 of the first and second AND gates 20, 24. The phase signal into the second input 26 is first passed through an inverter 30. An output of the first AND gate 20 is then fed into an input 32 of an H-bridge first half 34, and an output of the second AND gate 24 is fed into an input 36 of an H-bridge second half 38. Respective outputs of the H-bridge halves 34, 38 drive motor windings 40.
The conventional circuit 10 functions to change a current in the motor windings 40 by actively selecting successive coil currents, one after the other, in a sinusoidal manner, to drive the motor by a series of discrete microsteps. At any given moment, a selected coil current is actively controlled via a separate integrated circuit (not shown). The integrated circuit dynamically achieves a desired coil current by using a closed-loop control and a feedback of the motor coil current. Conventional stepper motor drive circuits thus are generally closed-loop systems with respect to where they connect to a stepper motor. Such conventional circuits experience several disadvantages in operation.
One disadvantage experienced by the conventional circuit 10 is noise. At certain micro-step values, a sampling nature of pulse width modulation (“PWM”) generation gives rise to audible sub-harmonics of the oscillator 14. Imprecise frequency control of the oscillator causes an undesirable audible frequency jitter, or “fizzing.” Furthermore, long wires in the feedback network connected to the stepper motor windings cause an undesirable electrical ringing noise, which can also occur audibly.
Another disadvantage experienced by the circuit 10 occurs when the phase control is switched. Ideally, the phase should be switched when the current through the motor windings 40 is zero. However, at typical operating speeds of the motor, there is always at least a finite amount of current flowing through the windings 40 due to the inductive nature of the windings. Switching the current polarity when the current is not actually zero causes a shaft of the motor (not shown) to rotate in a non-uniform manner. The non-uniform rotation results in an increased vibration in the motor, which further increases the audible noise experienced.
Still another disadvantage experienced with the circuit 10 rises out of the fact that H-bridges experience a “dead zone” when the voltage driving the motor windings 40 crosses through zero. The dead zone causes a noticeable and undesirable pause of the motor motion at slow shaft speeds. The pause results in a jerky shaft rotation of the motor, which makes precise positioning of the motor shaft difficult to impossible at a dead zone location. The dead zone crossings also further increase the generated noise experienced by the motor.
An example of a method to reduce noise from a stepper motor is described in patent to Peeters, U.S. Pat. No. 5,440,214. Peeters describes a voltage PWM drive which generates a sinusoidal drive signal using PWM timing, approximating a sine wave using discrete levels. Straight line coding of each PWM timing step is implemented in a central processing unit (“CPU”) to generate an approximate PWM pulse corresponding to the desired sine waveform. Peeters uses a single drive speed for quiet operation, and a closed-loop feedback system to dynamically measure and control the stepper motor.
Although useful for balancing the duty cycle of the PWM signal, the discrete, single-speed operating method described by Peeters is unable to compensate for different, or variable, operational drive speeds. This method is also unable to compensate for dead zone anomalies within a drive step, and therefore cannot accurately position the motor at lower drive speeds, where the inertia of the system is weaker, and thus unable to mask the dead zone anomalies.
A different stepper motor driver circuit is described in a patent to Labriola, U.S. Pat. No. 5,977,737. Labriola employs an H-bridge driving circuit, and controls the circuit using a closed-loop feedback system which utilizes a predicted motor current value. The predicted motor current is calculated on the basis of empirically-derived characteristics of the motor itself, and measured values for the motor angular velocity and physical angle. Similar to Peeters though, Labriola also requires dynamic measurements of some variables with a closed-loop feedback system that can produce undesirable noise.
Accordingly, it is desirable to construct a driver circuit for a stepper motor system which reduces the operational noise of the motor, while also avoiding the problems associated with closed-loop feedback, dead zone anomalies, and switching the current-limited waveform. The desired circuit should be operational for a continuous range of rotational speeds of the motor shaft.